// pages/auth/auth.js
const app = getApp()
// wx.showLoading({
//   title: '加载中'
// })
Page({
  data: {
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  onLoad () {
    wx.hideLoading()
  },
  // 微信授权
  bindGetUserInfo(e) {
    if (this.data.canIUse) {
      if (e.detail.userInfo) {
        wx.showLoading({
          title: '获取授权中',
          mask: true
        })
        //用户按了允许授权按钮
        wx.getUserInfo({
          success: res => {
            // 可以将 res 发送给后台解码出 unionId
            this.getUserInfo(res)
            this.getBindAccount()
          }
        })
      } else {
        //用户按了拒绝按钮
        wx.showModal({
          title: '警告',
          content: '您点击了拒绝授权，将无法进入小程序，请授权之后再进入!!!',
          showCancel: false,
          confirmText: '返回授权',
          success: function (res) {
            if (res.confirm) {
              console.log('用户点击了“返回授权”')
            }
          }
        })
      }
    } else {
      wx.showLoading({
        title: '获取授权中',
        mask: true
      })
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          this.getUserInfo(res)
          this.getBindAccount()
        }
      })
    }
  },
  // 微信授权 -> 接口访问是否已绑定终端账号
  getBindAccount() {
    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, userId
        wx.request({
          url: `${app.globalData.testApiUrl}/api/wx/user/wxffce1497b3bd775c/login/${res.code}`,
          success: res => {
            wx.hideLoading()
              wx.showToast({
                title: '授权成功',
                icon: 'succes',
                duration: 1000,
                mask: true
              })
              app.globalData.openId = res.data.openId
              app.globalData.sessionKey = res.data.sessionKey
              wx.request({
                url: `${app.globalData.testApiUrl}/api/wx/login/login`,
                method: 'POST',
                data: {
                  avatarUrl: app.globalData.userInfo.avatarUrl,
                  city: app.globalData.userInfo.city,
                  gender: '' + app.globalData.userInfo.gender,
                  nickName: app.globalData.userInfo.nickName,
                  openid: app.globalData.openId
                },
                success: (res) => {
                  console.log('登录成功', res)
                  app.globalData.userId = res.data.id
                  app.globalData.userType = res.data.usertype
                  wx.redirectTo({
                    url: '/pages/index/index',
                  })
                },
                fail: (error) => {
                  console.log('登录失败', error)
                }
              })
              // wx.redirectTo({
              //   url: '/pages/index/index',
              // })
          }
        })
      }
    })
  },
  // 获取用户微信授权后数据
  getUserInfo(e) {
    app.globalData.userInfo = e.userInfo
    // this.setData({
    //   userInfo: e.userInfo,
    //   hasUserInfo: true
    // })
  },
  // 返回index界面
  bindtoIndex(e) {
    app.globalData.loginStatu = 1
    wx.navigateTo({
      url: '../index/index?loginStatu=1'
    })
  }
})